The Internet has become an increasingly important source for information and applications, and the world wide web is the primary method of access. Content is served via web pages which are implemented using a combination of markup and scripting languages, such as Hypertext Markup Language (HTML) and JavaScript. Web pages are accessed by users via various browser applications. Examples of browsers include Internet Explorer, Firefox, Safari, Chrome, Opera, and so on.
Authors of web pages must take care to ensure that pages they create are compatible with their users' browsers. However, adhering to web standards such as HTML and Cascading Style Sheets (CSS) is not sufficient to ensure compatibility. The reasons for this are numerous. For example, some browsers support only a subset of these web standards. As another example, implementations of the standards are inconsistent across browsers. Also, the standards' specifications can be open to interpretation of the implementing party. In addition, the standards continue to evolve and change.
Validation of web pages for browser compatibility is often a tedious, expensive, and error prone process. There are numerous browser applications and operating system platforms, and test engineers test their web pages on each browser/operating system combination. Typically, to test a web page on each browser and operating system, a test engineer must configure and maintain a multitude of computers. Then, each test must be executed on each combination. Care must be taken to ensure the initial state of each browser and that the exact same test steps are followed. Then, the results of each test must be inspected manually to determine correctness.
One important aspect of correctness is ensuring that the web page layout of each page is visually consistent between different browsers. Detecting page layout inconsistencies across different browsers is an especially difficult problem. Due to the above-mentioned variation in browser and operating system implementations, it is extremely difficult to efficiently author content that renders the same across them. Thus, human judgment must be exercised to determine if the resulting page layout is acceptable.